﻿﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Xml.Serialization;
using Fcdbas.Core;
using Fcdbas.Core.Configuration;
using Fcdbas.Core.DataAccess;

namespace Fcdbas.CodeBuilder.ety
{
    /// <summary>LU=FndDesignAttribute^PROMPT=Fnd Design Attribute^MODULE=FCDBAS^VIEW=FND_DESIGN_ATTRIBUTE^PACKAGE=FndDesignAttribute^</summary>
    [Serializable]
    [DataObject]
    [Description("LU=FndDesignAttribute^PROMPT=Fnd Design Attribute^MODULE=FCDBAS^VIEW=FND_DESIGN_ATTRIBUTE^PACKAGE=FndDesignAttribute^")]
    [BindIndex("PRIMARY", true, "module,lu_name,attribute")]
    [BindTable("fnd_design_attribute_tab", Description = "LU=FndDesignAttribute^PROMPT=Fnd Design Attribute^MODULE=FCDBAS^VIEW=FND_DESIGN_ATTRIBUTE^PACKAGE=FndDesignAttribute^", ConnName = "", DbType = DatabaseType.MySql)]
    public partial class fnd_design_attribute_tab : Ifnd_design_attribute_tab
    {
        #region 属性
        private String _module;
        /// <summary>FLAGS=PMI--^DATATYPE=STRING(10)^PROMPT=Module^</summary>
        [DisplayName("FLAGS=PMI--^DATATYPE=STRING10^PROMPT=Module^")]
        [Description("FLAGS=PMI--^DATATYPE=STRING(10)^PROMPT=Module^")]
        [DataObjectField(true, false, false, 10)]
        [BindColumn(1, "module", "FLAGS=PMI--^DATATYPE=STRING(10)^PROMPT=Module^", null, "varchar(10)", 0, 0, false)]
        public virtual String module
        {
            get { return _module; }
            set { if (OnPropertyChanging(__.module, value)) { _module = value; OnPropertyChanged(__.module); } }
        }

        private String _lu_name;
        /// <summary>FLAGS=KMI-L^DATATYPE=STRING(35)^PROMPT=Lu Name^REF=FndDesignLu(Module)^</summary>
        [DisplayName("FLAGS=KMI-L^DATATYPE=STRING35^PROMPT=LuName^REF=FndDesignLuModule^")]
        [Description("FLAGS=KMI-L^DATATYPE=STRING(35)^PROMPT=Lu Name^REF=FndDesignLu(Module)^")]
        [DataObjectField(true, false, false, 35)]
        [BindColumn(2, "lu_name", "FLAGS=KMI-L^DATATYPE=STRING(35)^PROMPT=Lu Name^REF=FndDesignLu(Module)^", null, "varchar(35)", 0, 0, false)]
        public virtual String lu_name
        {
            get { return _lu_name; }
            set { if (OnPropertyChanging(__.lu_name, value)) { _lu_name = value; OnPropertyChanged(__.lu_name); } }
        }

        private Int32 _column_index;
        /// <summary></summary>
        [DisplayName("Index")]
        [Description("")]
        [DataObjectField(false, false, true, 10)]
        [BindColumn(3, "column_index", "", null, "int(3)", 10, 0, false)]
        public virtual Int32 column_index
        {
            get { return _column_index; }
            set { if (OnPropertyChanging(__.column_index, value)) { _column_index = value; OnPropertyChanged(__.column_index); } }
        }

        private String _attribute = string.Empty;
        /// <summary>FLAGS=KMI-L^DATATYPE=STRING(35)^PROMPT=Attribute^</summary>
        [DisplayName("FLAGS=KMI-L^DATATYPE=STRING35^PROMPT=Attribute^")]
        [Description("FLAGS=KMI-L^DATATYPE=STRING(35)^PROMPT=Attribute^")]
        [DataObjectField(true, false, false, 35)]
        [BindColumn(4, "attribute", "FLAGS=KMI-L^DATATYPE=STRING(35)^PROMPT=Attribute^", null, "varchar(35)", 0, 0, false)]
        public virtual String attribute
        {
            get { return _attribute; }
            set { if (OnPropertyChanging(__.attribute, value)) { _attribute = value; OnPropertyChanged(__.attribute); } }
        }

        private String _data_type;
        /// <summary>FLAGS=AMIU-^DATATYPE=STRING(25)^PROMPT=Data Type^</summary>
        [DisplayName("FLAGS=AMIU-^DATATYPE=STRING25^PROMPT=DataType^")]
        [Description("FLAGS=AMIU-^DATATYPE=STRING(25)^PROMPT=Data Type^")]
        [DataObjectField(false, false, false, 25)]
        [BindColumn(5, "data_type", "FLAGS=AMIU-^DATATYPE=STRING(25)^PROMPT=Data Type^", null, "varchar(25)", 0, 0, false)]
        public virtual String data_type
        {
            get { return _data_type; }
            set { if (OnPropertyChanging(__.data_type, value)) { _data_type = value; OnPropertyChanged(__.data_type); } }
        }

        private Int32 _data_length;
        /// <summary>FLAGS=AMIU-^DATATYPE=INT^PROMPT=Data Length^</summary>
        [DisplayName("FLAGS=AMIU-^DATATYPE=INT^PROMPT=DataLength^")]
        [Description("FLAGS=AMIU-^DATATYPE=INT^PROMPT=Data Length^")]
        [DataObjectField(false, false, false, 10)]
        [BindColumn(6, "data_length", "FLAGS=AMIU-^DATATYPE=INT^PROMPT=Data Length^", null, "int(11)", 10, 0, false)]
        public virtual Int32 data_length
        {
            get { return _data_length; }
            set { if (OnPropertyChanging(__.data_length, value)) { _data_length = value; OnPropertyChanged(__.data_length); } }
        }

        private String _data_format;
        /// <summary>FLAGS=AMIU-^DATATYPE=STRING(25)^PROMPT=Data Format^</summary>
        [DisplayName("FLAGS=AMIU-^DATATYPE=STRING25^PROMPT=DataFormat^")]
        [Description("FLAGS=AMIU-^DATATYPE=STRING(25)^PROMPT=Data Format^")]
        [DataObjectField(false, false, false, 25)]
        [BindColumn(7, "data_format", "FLAGS=AMIU-^DATATYPE=STRING(25)^PROMPT=Data Format^", null, "varchar(25)", 0, 0, false)]
        public virtual String data_format
        {
            get { return _data_format; }
            set { if (OnPropertyChanging(__.data_format, value)) { _data_format = value; OnPropertyChanged(__.data_format); } }
        }

        private String _prompt = string.Empty;
        /// <summary>FLAGS=AMIU-^DATATYPE=STRING(50)^PROMPT=Prompt^</summary>
        [DisplayName("FLAGS=AMIU-^DATATYPE=STRING50^PROMPT=Prompt^")]
        [Description("FLAGS=AMIU-^DATATYPE=STRING(50)^PROMPT=Prompt^")]
        [DataObjectField(false, false, false, 50)]
        [BindColumn(8, "prompt", "FLAGS=AMIU-^DATATYPE=STRING(50)^PROMPT=Prompt^", "", "varchar(50)", 0, 0, false)]
        public virtual String prompt
        {
            get
            {
                //if (_prompt.Trim() == "" && this.attribute.Trim()!="")
                //{
                return ConverString(attribute, " ");
                //}
                //else
                //{
                    //return _prompt;
                //}
            }
            set { if (OnPropertyChanging(__.prompt, value)) { _prompt = value; OnPropertyChanged(__.prompt); } }
        }

        string ConverString(string str, string splitStr)
        {
            string _str = "";
            for (int i = 0; i < str.Length; i++)
            {
                if (System.Text.RegularExpressions.Regex.IsMatch(str[i].ToString(), "[A-Z]") && i != 0)
                {
                    _str = _str + splitStr;
                }
                _str = _str + str[i].ToString();
            }
            return _str;
        }

        private String _key_flag="FALSE";
        /// <summary>FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Key Flag^</summary>
        [DisplayName("FLAGS=AMIU-^DATATYPE=STRING5^PROMPT=KeyFlag^")]
        [Description("FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Key Flag^")]
        [DataObjectField(false, false, false, 5)]
        [BindColumn(9, "key_flag", "FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Key Flag^", "FALSE", "varchar(5)", 0, 0, false)]
        public virtual String key_flag
        {
            get {
                return _key_flag; 
            }
            set
            {
                //if (OnPropertyChanging(__.key_flag, value))
                //{
                //    _key_flag = value; OnPropertyChanged(__.key_flag);
                //}
                _key_flag = value;
            }
        }

        private bool _key_flag_chk = false;
        public bool key_flag_chk
        {
            set
            {
                _key_flag_chk = value;
                if (value)
                    key_flag = "TRUE";
                else
                    key_flag = "FALSE";
            }
            get
            {
                if (_key_flag == "TRUE")
                {
                    _key_flag_chk = true;
                }
                else
                {
                    _key_flag_chk = false;
                }
                return _key_flag_chk;
            }
        }

        private bool _requried_chk = false;
        public bool requried_chk
        {
            set
            {
                _requried_chk = value;
                if (value)
                    requried = "TRUE";
                else
                    requried = "FALSE";
            }
            get
            {
                if (_requried == "TRUE")
                {
                    _requried_chk = true;
                }
                else
                {
                    _requried_chk = false;
                }
                return _requried_chk;
            }


        }

        private bool _inserable_chk = false;
        public bool inserable_chk
        {
            set
            {
                _inserable_chk = value;
                if (value)
                    inserable = "TRUE";
                else
                    inserable = "FALSE";
            }
            get
            {
                if (_inserable == "TRUE")
                {
                    _inserable_chk = true;
                }
                else
                {
                    _inserable_chk = false;
                }
                return _inserable_chk;
            }

        }

        private String _Public = "FALSE";
        /// <summary></summary>
        [DisplayName("Public")]
        [Description("")]
        [DataObjectField(false, false, true, 5)]
        [BindColumn(13, "Public", "", "FALSE", "varchar(5)", 0, 0, false)]
        public virtual String Public
        {
            get
            {
                return _Public;
            }
            set
            {
                _Public = value;
                //if (OnPropertyChanging(__.Public, value)) { _Public = value; OnPropertyChanged(__.Public); }
            }
        }

        private bool _Public_chk = true;
        public bool Public_chk
        {
            set
            {
                _Public_chk = value;
                if (value)
                    Public = "TRUE";
                else
                    Public = "FALSE";
            }
            get
            {
                if (_Public == "TRUE")
                {
                    _Public_chk = true;
                }
                else
                {
                    _Public_chk = false;
                }
                return _Public_chk;
            }
        }


        private String _requried = "FALSE";
        /// <summary>FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Requried^</summary>
        [DisplayName("FLAGS=AMIU-^DATATYPE=STRING5^PROMPT=Requried^")]
        [Description("FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Requried^")]
        [DataObjectField(false, false, false, 5)]
        [BindColumn(10, "requried", "FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Requried^", "FALSE", "varchar(5)", 0, 0, false)]
        public virtual String requried
        {
            get {
                return _requried; 
            }
            set
            {
                if (OnPropertyChanging(__.requried, value)) { _requried = value; OnPropertyChanged(__.requried); }
            }
        }

        private String _inserable = "FALSE";
        /// <summary>FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Inserable^</summary>
        [DisplayName("FLAGS=AMIU-^DATATYPE=STRING5^PROMPT=Inserable^")]
        [Description("FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Inserable^")]
        [DataObjectField(false, false, false, 5)]
        [BindColumn(11, "inserable", "FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Inserable^", "FALSE", "varchar(5)", 0, 0, false)]
        public virtual String inserable
        {
            get {
                return _inserable; 
            }
            set
            {
                if (OnPropertyChanging(__.inserable, value)) { _inserable = value; OnPropertyChanged(__.inserable); }
            }
        }

        private String _lov_flag = "FALSE";
        /// <summary>FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Lov Flag^</summary>
        [DisplayName("FLAGS=AMIU-^DATATYPE=STRING5^PROMPT=LovFlag^")]
        [Description("FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Lov Flag^")]
        [DataObjectField(false, false, false, 5)]
        [BindColumn(12, "lov_flag", "FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Lov Flag^", "FALSE", "varchar(5)", 0, 0, false)]
        public virtual String lov_flag
        {
            get {
                return _lov_flag; 
            }
            set
            {
                if (OnPropertyChanging(__.lov_flag, value))
                {
                    _lov_flag = value;
                    OnPropertyChanged(__.lov_flag);
                }
            }
        }

        private bool _lov_flag_chk = true;
        public bool lov_flag_chk
        {
            set
            {
                _lov_flag_chk = value;
                if (value)
                    lov_flag = "TRUE";
                else
                    lov_flag = "FALSE";
            }
            get
            {
                if (lov_flag == "TRUE")
                {
                    _lov_flag_chk = true;
                }
                else
                {
                    _lov_flag_chk = false;
                }
                return _lov_flag_chk;
            }
        }



        private String _updateable;
        /// <summary>FLAGS=AMIU-^DATATYPE=STRING(50)^PROMPT=Updateable^</summary>
        [DisplayName("FLAGS=AMIU-^DATATYPE=STRING50^PROMPT=Updateable^")]
        [Description("FLAGS=AMIU-^DATATYPE=STRING(50)^PROMPT=Updateable^")]
        [DataObjectField(false, false, false, 50)]
        [BindColumn(14, "updateable", "FLAGS=AMIU-^DATATYPE=STRING(50)^PROMPT=Updateable^", null, "varchar(50)", 0, 0, false)]
        public virtual String updateable
        {
            get { return _updateable; }
            set { if (OnPropertyChanging(__.updateable, value)) { _updateable = value; OnPropertyChanged(__.updateable); } }
        }

        private String _reference_class;
        /// <summary>FLAGS=A-IU-^DATATYPE=STRING(35)^PROMPT=Reference Class^</summary>
        [DisplayName("FLAGS=A-IU-^DATATYPE=STRING35^PROMPT=ReferenceClass^")]
        [Description("FLAGS=A-IU-^DATATYPE=STRING(35)^PROMPT=Reference Class^")]
        [DataObjectField(false, false, true, 35)]
        [BindColumn(15, "reference_class", "FLAGS=A-IU-^DATATYPE=STRING(35)^PROMPT=Reference Class^", null, "varchar(35)", 0, 0, false)]
        public virtual String reference_class
        {
            get { return _reference_class; }
            set { if (OnPropertyChanging(__.reference_class, value)) { _reference_class = value; OnPropertyChanged(__.reference_class); } }
        }

        private String _reference_view;
        /// <summary>FLAGS=A-IU-^DATATYPE=STRING(40)^PROMPT=Reference View^</summary>
        [DisplayName("FLAGS=A-IU-^DATATYPE=STRING40^PROMPT=ReferenceView^")]
        [Description("FLAGS=A-IU-^DATATYPE=STRING(40)^PROMPT=Reference View^")]
        [DataObjectField(false, false, true, 40)]
        [BindColumn(16, "reference_view", "FLAGS=A-IU-^DATATYPE=STRING(40)^PROMPT=Reference View^", null, "varchar(40)", 0, 0, false)]
        public virtual String reference_view
        {
            get { return _reference_view; }
            set { if (OnPropertyChanging(__.reference_view, value)) { _reference_view = value; OnPropertyChanged(__.reference_view); } }
        }

        private String _parent_keys;
        /// <summary>FLAGS=A-IU-^DATATYPE=STRING(50)^PROMPT=Parent Keys^</summary>
        [DisplayName("FLAGS=A-IU-^DATATYPE=STRING50^PROMPT=ParentKeys^")]
        [Description("FLAGS=A-IU-^DATATYPE=STRING(50)^PROMPT=Parent Keys^")]
        [DataObjectField(false, false, true, 50)]
        [BindColumn(17, "parent_keys", "FLAGS=A-IU-^DATATYPE=STRING(50)^PROMPT=Parent Keys^", null, "varchar(50)", 0, 0, false)]
        public virtual String parent_keys
        {
            get { return _parent_keys; }
            set { if (OnPropertyChanging(__.parent_keys, value)) { _parent_keys = value; OnPropertyChanged(__.parent_keys); } }
        }

        private String _option_name;
        /// <summary>FLAGS=A-IU-^DATATYPE=STRING(100)^PROMPT=Option Name^</summary>
        [DisplayName("FLAGS=A-IU-^DATATYPE=STRING100^PROMPT=OptionName^")]
        [Description("FLAGS=A-IU-^DATATYPE=STRING(100)^PROMPT=Option Name^")]
        [DataObjectField(false, false, true, 100)]
        [BindColumn(18, "option_name", "FLAGS=A-IU-^DATATYPE=STRING(100)^PROMPT=Option Name^", null, "varchar(100)", 0, 0, false)]
        public virtual String option_name
        {
            get { return _option_name; }
            set { if (OnPropertyChanging(__.option_name, value)) { _option_name = value; OnPropertyChanged(__.option_name); } }
        }

        private String _option_arg;
        /// <summary>FLAGS=A-IU-^DATATYPE=STRING(50)^PROMPT=Option Arg^</summary>
        [DisplayName("FLAGS=A-IU-^DATATYPE=STRING50^PROMPT=OptionArg^")]
        [Description("FLAGS=A-IU-^DATATYPE=STRING(50)^PROMPT=Option Arg^")]
        [DataObjectField(false, false, true, 50)]
        [BindColumn(19, "option_arg", "FLAGS=A-IU-^DATATYPE=STRING(50)^PROMPT=Option Arg^", null, "varchar(50)", 0, 0, false)]
        public virtual String option_arg
        {
            get { return _option_arg; }
            set { if (OnPropertyChanging(__.option_arg, value)) { _option_arg = value; OnPropertyChanged(__.option_arg); } }
        }

        private String _rowid;
        /// <summary></summary>
        [DisplayName("Rowid")]
        [Description("")]
        [DataObjectField(false, false, false, 50)]
        [BindColumn(20, "rowid", "", null, "varchar(50)", 0, 0, false)]
        public virtual String rowid
        {
            get { return _rowid; }
            set { if (OnPropertyChanging(__.rowid, value)) { _rowid = value; OnPropertyChanged(__.rowid); } }
        }

        private DateTime _rowversion;
        /// <summary></summary>
        [DisplayName("Rowversion")]
        [Description("")]
        [DataObjectField(false, false, false, 0)]
        [BindColumn(21, "rowversion", "", null, "datetime", 0, 0, false)]
        public virtual DateTime rowversion
        {
            get { return _rowversion; }
            set { if (OnPropertyChanging(__.rowversion, value)) { _rowversion = value; OnPropertyChanged(__.rowversion); } }
        }
        #endregion

        #region 获取/设置 字段值
        /// <summary>
        /// 获取/设置 字段值。
        /// 一个索引，基类使用反射实现。
        /// 派生实体类可重写该索引，以避免反射带来的性能损耗
        /// </summary>
        /// <param name="name">字段名</param>
        /// <returns></returns>
        public override Object this[String name]
        {
            get
            {
                switch (name)
                {
                    case __.module: return _module;
                    case __.lu_name: return _lu_name;
                    case __.column_index: return _column_index;
                    case __.attribute: return _attribute;
                    case __.data_type: return _data_type;
                    case __.data_length: return _data_length;
                    case __.data_format: return _data_format;
                    case __.prompt: return _prompt;
                    case __.key_flag: return _key_flag;
                    case __.requried: return _requried;
                    case __.inserable: return _inserable;
                    case __.lov_flag: return _lov_flag;
                    case __.Public: return _Public;
                    case __.updateable: return _updateable;
                    case __.reference_class: return _reference_class;
                    case __.reference_view: return _reference_view;
                    case __.parent_keys: return _parent_keys;
                    case __.option_name: return _option_name;
                    case __.option_arg: return _option_arg;
                    case __.rowid: return _rowid;
                    case __.rowversion: return _rowversion;
                    default: return base[name];
                }
            }
            set
            {
                switch (name)
                {
                    case __.module: _module = Convert.ToString(value); break;
                    case __.lu_name: _lu_name = Convert.ToString(value); break;
                    case __.column_index: _column_index = Convert.ToInt32(value); break;
                    case __.attribute: _attribute = Convert.ToString(value); break;
                    case __.data_type: _data_type = Convert.ToString(value); break;
                    case __.data_length: _data_length = Convert.ToInt32(value); break;
                    case __.data_format: _data_format = Convert.ToString(value); break;
                    case __.prompt: _prompt = Convert.ToString(value); break;
                    case __.key_flag: _key_flag = Convert.ToString(value); break;
                    case __.requried: _requried = Convert.ToString(value); break;
                    case __.inserable: _inserable = Convert.ToString(value); break;
                    case __.lov_flag: _lov_flag = Convert.ToString(value); break;
                    case __.Public: _Public = Convert.ToString(value); break;
                    case __.updateable: _updateable = Convert.ToString(value); break;
                    case __.reference_class: _reference_class = Convert.ToString(value); break;
                    case __.reference_view: _reference_view = Convert.ToString(value); break;
                    case __.parent_keys: _parent_keys = Convert.ToString(value); break;
                    case __.option_name: _option_name = Convert.ToString(value); break;
                    case __.option_arg: _option_arg = Convert.ToString(value); break;
                    case __.rowid: _rowid = Convert.ToString(value); break;
                    case __.rowversion: _rowversion = Convert.ToDateTime(value); break;
                    default: base[name] = value; break;
                }
            }
        }
        #endregion

        #region 字段名
        /// <summary>取得LU=FndDesignAttribute^PROMPT=Fnd Design Attribute^MODULE=FCDBAS^VIEW=FND_DESIGN_ATTRIBUTE^PACKAGE=FndDesignAttribute^字段信息的快捷方式</summary>
        public class _
        {
            ///<summary>FLAGS=PMI--^DATATYPE=STRING(10)^PROMPT=Module^</summary>
            public static readonly Field module = FindByName(__.module);

            ///<summary>FLAGS=KMI-L^DATATYPE=STRING(35)^PROMPT=Lu Name^REF=FndDesignLu(Module)^</summary>
            public static readonly Field lu_name = FindByName(__.lu_name);

            ///<summary></summary>
            public static readonly Field column_index = FindByName(__.column_index);

            ///<summary>FLAGS=KMI-L^DATATYPE=STRING(35)^PROMPT=Attribute^</summary>
            public static readonly Field attribute = FindByName(__.attribute);

            ///<summary>FLAGS=AMIU-^DATATYPE=STRING(25)^PROMPT=Data Type^</summary>
            public static readonly Field data_type = FindByName(__.data_type);

            ///<summary>FLAGS=AMIU-^DATATYPE=INT^PROMPT=Data Length^</summary>
            public static readonly Field data_length = FindByName(__.data_length);

            ///<summary>FLAGS=AMIU-^DATATYPE=STRING(25)^PROMPT=Data Format^</summary>
            public static readonly Field data_format = FindByName(__.data_format);

            ///<summary>FLAGS=AMIU-^DATATYPE=STRING(50)^PROMPT=Prompt^</summary>
            public static readonly Field prompt = FindByName(__.prompt);

            ///<summary>FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Key Flag^</summary>
            public static readonly Field key_flag = FindByName(__.key_flag);

            ///<summary>FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Requried^</summary>
            public static readonly Field requried = FindByName(__.requried);

            ///<summary>FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Inserable^</summary>
            public static readonly Field inserable = FindByName(__.inserable);

            ///<summary>FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Lov Flag^</summary>
            public static readonly Field lov_flag = FindByName(__.lov_flag);

            ///<summary></summary>
            public static readonly Field Public = FindByName(__.Public);

            ///<summary>FLAGS=AMIU-^DATATYPE=STRING(50)^PROMPT=Updateable^</summary>
            public static readonly Field updateable = FindByName(__.updateable);

            ///<summary>FLAGS=A-IU-^DATATYPE=STRING(35)^PROMPT=Reference Class^</summary>
            public static readonly Field reference_class = FindByName(__.reference_class);

            ///<summary>FLAGS=A-IU-^DATATYPE=STRING(40)^PROMPT=Reference View^</summary>
            public static readonly Field reference_view = FindByName(__.reference_view);

            ///<summary>FLAGS=A-IU-^DATATYPE=STRING(50)^PROMPT=Parent Keys^</summary>
            public static readonly Field parent_keys = FindByName(__.parent_keys);

            ///<summary>FLAGS=A-IU-^DATATYPE=STRING(100)^PROMPT=Option Name^</summary>
            public static readonly Field option_name = FindByName(__.option_name);

            ///<summary>FLAGS=A-IU-^DATATYPE=STRING(50)^PROMPT=Option Arg^</summary>
            public static readonly Field option_arg = FindByName(__.option_arg);

            ///<summary></summary>
            public static readonly Field rowid = FindByName(__.rowid);

            ///<summary></summary>
            public static readonly Field rowversion = FindByName(__.rowversion);

            static Field FindByName(String name) { return Meta.Table.FindByName(name); }
        }

        /// <summary>取得LU=FndDesignAttribute^PROMPT=Fnd Design Attribute^MODULE=FCDBAS^VIEW=FND_DESIGN_ATTRIBUTE^PACKAGE=FndDesignAttribute^字段名称的快捷方式</summary>
        class __
        {
            ///<summary>FLAGS=PMI--^DATATYPE=STRING(10)^PROMPT=Module^</summary>
            public const String module = "module";

            ///<summary>FLAGS=KMI-L^DATATYPE=STRING(35)^PROMPT=Lu Name^REF=FndDesignLu(Module)^</summary>
            public const String lu_name = "lu_name";

            ///<summary></summary>
            public const String column_index = "column_index";

            ///<summary>FLAGS=KMI-L^DATATYPE=STRING(35)^PROMPT=Attribute^</summary>
            public const String attribute = "attribute";

            ///<summary>FLAGS=AMIU-^DATATYPE=STRING(25)^PROMPT=Data Type^</summary>
            public const String data_type = "data_type";

            ///<summary>FLAGS=AMIU-^DATATYPE=INT^PROMPT=Data Length^</summary>
            public const String data_length = "data_length";

            ///<summary>FLAGS=AMIU-^DATATYPE=STRING(25)^PROMPT=Data Format^</summary>
            public const String data_format = "data_format";

            ///<summary>FLAGS=AMIU-^DATATYPE=STRING(50)^PROMPT=Prompt^</summary>
            public const String prompt = "prompt";

            ///<summary>FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Key Flag^</summary>
            public const String key_flag = "key_flag";

            ///<summary>FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Requried^</summary>
            public const String requried = "requried";

            ///<summary>FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Inserable^</summary>
            public const String inserable = "inserable";

            ///<summary>FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Lov Flag^</summary>
            public const String lov_flag = "lov_flag";

            ///<summary></summary>
            public const String Public = "Public";

            ///<summary>FLAGS=AMIU-^DATATYPE=STRING(50)^PROMPT=Updateable^</summary>
            public const String updateable = "updateable";

            ///<summary>FLAGS=A-IU-^DATATYPE=STRING(35)^PROMPT=Reference Class^</summary>
            public const String reference_class = "reference_class";

            ///<summary>FLAGS=A-IU-^DATATYPE=STRING(40)^PROMPT=Reference View^</summary>
            public const String reference_view = "reference_view";

            ///<summary>FLAGS=A-IU-^DATATYPE=STRING(50)^PROMPT=Parent Keys^</summary>
            public const String parent_keys = "parent_keys";

            ///<summary>FLAGS=A-IU-^DATATYPE=STRING(100)^PROMPT=Option Name^</summary>
            public const String option_name = "option_name";

            ///<summary>FLAGS=A-IU-^DATATYPE=STRING(50)^PROMPT=Option Arg^</summary>
            public const String option_arg = "option_arg";

            ///<summary></summary>
            public const String rowid = "rowid";

            ///<summary></summary>
            public const String rowversion = "rowversion";

        }
        #endregion
    }

    /// <summary>LU=FndDesignAttribute^PROMPT=Fnd Design Attribute^MODULE=FCDBAS^VIEW=FND_DESIGN_ATTRIBUTE^PACKAGE=FndDesignAttribute^接口</summary>
    public partial interface Ifnd_design_attribute_tab
    {
        #region 属性
        /// <summary>FLAGS=PMI--^DATATYPE=STRING(10)^PROMPT=Module^</summary>
        String module { get; set; }

        /// <summary>FLAGS=KMI-L^DATATYPE=STRING(35)^PROMPT=Lu Name^REF=FndDesignLu(Module)^</summary>
        String lu_name { get; set; }

        /// <summary></summary>
        Int32 column_index { get; set; }

        /// <summary>FLAGS=KMI-L^DATATYPE=STRING(35)^PROMPT=Attribute^</summary>
        String attribute { get; set; }

        /// <summary>FLAGS=AMIU-^DATATYPE=STRING(25)^PROMPT=Data Type^</summary>
        String data_type { get; set; }

        /// <summary>FLAGS=AMIU-^DATATYPE=INT^PROMPT=Data Length^</summary>
        Int32 data_length { get; set; }

        /// <summary>FLAGS=AMIU-^DATATYPE=STRING(25)^PROMPT=Data Format^</summary>
        String data_format { get; set; }

        /// <summary>FLAGS=AMIU-^DATATYPE=STRING(50)^PROMPT=Prompt^</summary>
        String prompt { get; set; }

        /// <summary>FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Key Flag^</summary>
        String key_flag { get; set; }

        /// <summary>FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Requried^</summary>
        String requried { get; set; }

        /// <summary>FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Inserable^</summary>
        String inserable { get; set; }

        /// <summary>FLAGS=AMIU-^DATATYPE=STRING(5)^PROMPT=Lov Flag^</summary>
        String lov_flag { get; set; }

        /// <summary></summary>
        String Public { get; set; }

        /// <summary>FLAGS=AMIU-^DATATYPE=STRING(50)^PROMPT=Updateable^</summary>
        String updateable { get; set; }

        /// <summary>FLAGS=A-IU-^DATATYPE=STRING(35)^PROMPT=Reference Class^</summary>
        String reference_class { get; set; }

        /// <summary>FLAGS=A-IU-^DATATYPE=STRING(40)^PROMPT=Reference View^</summary>
        String reference_view { get; set; }

        /// <summary>FLAGS=A-IU-^DATATYPE=STRING(50)^PROMPT=Parent Keys^</summary>
        String parent_keys { get; set; }

        /// <summary>FLAGS=A-IU-^DATATYPE=STRING(100)^PROMPT=Option Name^</summary>
        String option_name { get; set; }

        /// <summary>FLAGS=A-IU-^DATATYPE=STRING(50)^PROMPT=Option Arg^</summary>
        String option_arg { get; set; }

        /// <summary></summary>
        String rowid { get; set; }

        /// <summary></summary>
        DateTime rowversion { get; set; }
        #endregion

        #region 获取/设置 字段值
        /// <summary>获取/设置 字段值。</summary>
        /// <param name="name">字段名</param>
        /// <returns></returns>
        Object this[String name] { get; set; }
        #endregion
    }
}